import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;

public class Test3 {


    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int a = in.nextInt();
            int b = in.nextInt();
            System.out.println(a + b);
        }
    }


    public int missingNumber(int[] nums) {
        int left = 0;
        int right = nums.length-1;
        while (left<right){
            int mid = left + (right-left)/2;
            if (nums[mid] == mid){
                left = mid+1;
            }else {
                right = mid;
            }
        }
        return left;
    }

    public int findMin(int[] nums) {
        int left = 0;
        int right = nums.length;
        while (left<right){
            int mid = left+(right-left)/2;
            if (nums[mid]>=nums[0]){
                left  = mid+1;
            }else {
                right = mid;
            }
        }
        return nums[left];


    }

    public int findPeakElement(int[] nums) {
        int left = 0;
        int right = nums.length-1;
        while (left<right){
            int mid = left+(right-left)/2;
            if (nums[mid]<nums[mid+1]){
                left = mid+1;
            }else {
                right = mid;
            }
        }
        return left;

    }

    public int peakIndexInMountainArray(int[] arr) {
        int left = 0;
        int right = arr.length-1;
        while (left<right){
            int mid = left+(right-left)/2;
            if (arr[mid]<arr[mid+1]){
                left = mid+1;
            }else {
                right = mid;
            }
        }
        return left;
    }

    public static int searchInsert(int[] nums, int target) {
        int left = 0;
        int right = nums.length-1;

        while (left<right){
            int mid = left + (right-left)/2;
            if (nums[mid] >=target){
                right = mid;
            }else {
                left = mid+1;
            }
        }
        if(nums[left]<target){
            return left+1;
        }
        return left;


    }








    public static void main1(String[] args) {
//        int[] nums = {-1,0,3,5,9,12};
//        System.out.println(search(nums,9));

//        int[] a = {5,7,7,8,8,8,10};
////        int[] a = {};
//        int[] b = searchRange(a,5);
//        System.out.println(b[0]+","+b[1]);

//
//        int[] nums ={1,3,5,6};
//        int target = 5;
//        System.out.println(searchInsert(nums,target));

        System.out.println(mySqrt(40));
    }




    public static int mySqrt(long x) {
        if(x == 0){
            return 0;
        }
        long left = 0;
        long right = x;
        while (left<right){
            long mid = left+ (right-left+1)/2;
            if((long)mid*(long)mid <= x){
                left = mid;
            }else{
                right = mid-1;
            }
        }
        return (int)left;
    }

//    public static int searchInsert(int[] nums, int target) {
//
//        int left = 0;
//        int right = nums.length-1;
//
//        while (left<right){
//            int mid = left+(right-left+1)/2;
//            if (nums[mid] * nums[mid]<=target){
//                left = mid;
//            }else {
//                right = mid-1;
//            }
//        }
//        if (nums[left] == target){
//            return left;
//        }
//        return left+1;
//
//
//
//    }


    public static int[] searchRange(int[] nums, int target) {
        int[] index = new int[2];
        int left = 0;
        int right = nums.length-1;

        if (nums.length == 0){
            index[0] = -1;
            index[1] = -1;
            return index;
        }
        //找target左边界
        while (left < right){
            int mid = left+(right-left)/2;
            if (nums[mid] < target){
                left = mid+1;
            }else {
                right = mid;
            }
        }
        //right == left 时
        if (nums[left] == target){
            index[0] = left;
        }else {
            index[0] = -1;
            index[1] = -1;
            return index;
        }

        left = 0;
        right = nums.length-1;

        //找右边界
        while (left < right){
            int mid = left+(right-left+1)/2;
            if (nums[mid] <= target){
                left = mid;
            }else {
                right = mid-1;
            }
        }
        if (nums[left] == target){
            index[1] = left;
        }
        return index;

    }










    public static int search(int[] nums, int target) {
        int left = 0;
        int right = nums.length;
        int mid = (left+right)/2;
        while (left<=right){
            if (nums[mid]>target){
                right = mid-1;
                mid = (left+right)/2;
            }else if(nums[mid]<target){
                left = mid+1;
                mid = (left+right)/2;
            }else {
                return mid;
            }
        }
        return -1;
    }





}
